1. Technical Field
The present disclosure generally relates to information handling systems and in particular to a system and method for updating a unified extensible firmware interface (UEFI) image in an information handling system.
2. Description of the Related Art
As the value and use of information continue to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes, thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications.
Unified extensible firmware interface (UEFI) is a specification that defines a software interface between an operating system and platform firmware. UEFI replaces the basic input/output system (BIOS) found on older information handling systems. UEFI provides a standard architecture and data structure to manage initialization and configuration of devices, booting of platform resources, and passing of control to the operating system. The UEFI specification allows for the extension of platform firmware by loading UEFI driver and application images.
The UEFI image is stored on non-volatile storage such as flash memory. The UEFI image can contain both code regions and data regions. The UEFI image can contain data regions that store variables in the non-volatile storage. Unfortunately, if the UEFI image is updated with a new image that contains code or data regions that are larger than in the original UEFI image, overwriting of areas in the flash memory that store data and variables can occur. This results in the existing data and variables being erased or lost.